﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

using Controller;
using Model;

namespace WCFService
{
    // NOTE: You can use the "Rename" command on the "Refactor" menu to change the interface name "IWilkeService" in both code and config file together.
    [ServiceContract]
    public interface IWilkeService
    {
        #region Bruger

        [OperationContract]
        int OpretBruger(string navn, string adresse, int postnr, string by, Int64 kontonr, int regnr,
            string mail, bool administrator, int telefonnr, string password, string kontraktType);

        [OperationContract]
        Bruger[] VisBrugere();

        [OperationContract]
        Bruger FindBruger(int personID);

        [OperationContract]
        Bruger RetBruger(int personID, string navn, string adresse, int postnr, string by, Int64 kontonr, int regnr,
            string email, bool administrator, bool aktiv, int telefonnr, string password, string kontraktType);

        
        #endregion



        #region Projekt

        [OperationContract]
        int OpretProjekt(string projektnavn, DateTime projektstart, DateTime projektslut);
        
        [OperationContract]
        Projekt[] VisProjekter();

        [OperationContract]
        Projekt FindProjekt(int projektID);

        #endregion



        #region Kontrakt

        [OperationContract]
        int OpretKontrakt(Decimal timeLøn, string kontraktType);

        [OperationContract]
        Kontrakt[] VisKontrakter();

        [OperationContract]
        Kontrakt FindKontrakt(int kontraktNr);

        #endregion


        #region Timeregistrering

        [OperationContract]
        Timer RegistrerTimer(DateTime timeStart, DateTime timeSlut, DateTime dato, Bruger bruger, Projekt projekt, string kommentar,
                     bool timeGodkendelse, bool timeUdbetalt);
        #endregion
    }
}